/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package treegen;

import javafx.event.EventHandler;
import javafx.geometry.Insets;
import javafx.scene.control.Button;
import javafx.scene.control.ComboBox;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.input.MouseEvent;
import javafx.scene.layout.HBox;
import javafx.scene.layout.VBox;
import javafx.scene.paint.Color;
import javafx.scene.text.Font;
import javafx.scene.text.FontPosture;
import javafx.scene.text.FontWeight;
import javafx.scene.text.Text;

/**
 *
 * @author Дарья
 */
public class LeafPanel {
    public VBox mainPane;
    private ComboBox comboShape = new ComboBox();
    private HBox shape = new HBox();
    private ComboBox comboSize = new ComboBox();
    private HBox size = new HBox();
    private ComboBox comboColor = new ComboBox();
    private HBox color = new HBox();
    private ImageView image;
    private Text text;
    private HBox acicular = new HBox();
    private HBox linear = new HBox();
    private HBox large = new HBox();
    private HBox middle = new HBox(); 
    private HBox small = new HBox();
    private HBox orange = new HBox();
    private HBox yellow = new HBox();
    private HBox red = new HBox();
    private HBox green = new HBox(); 
    private HBox darkGreen = new HBox();
    private HBox reset = new HBox();
    private Button buttonReset = getButton("Сбросить");
    
    public LeafPanel() {
        mainPane = new VBox();

        //игольчатая форма
        text = new Text("Игольчатая");
        text.setFont(Font.font("Verdana", 12));
        image = new ImageView(new Image(BranchLevel.class.getResourceAsStream("pictures/igolka.png")));
        acicular.getChildren().addAll(image, text);
        
        //линейная форма
        text = new Text("Линейная");
        text.setFont(Font.font("Verdana", 12));
        image = new ImageView(new Image(BranchLevel.class.getResourceAsStream("pictures/line.png")));
        linear.getChildren().addAll(image, text);
        
        //Комбобокс для формы листьев
        comboShape.getItems().addAll(acicular, linear);
        
        //Виджет для формы листьев
        text = new Text("Форма листьев: ");
        text.setFont(Font.font("Verdana", FontPosture.ITALIC, 14));
        shape.getChildren().addAll(text, comboShape);
        shape.setPadding(new Insets(0, 0, 10, 0));
        
        //большие размеры
        text = new Text("Крупные(20-40 см)");
        text.setFont(Font.font("Verdana", 12));
        large.getChildren().addAll(text);
        
        //средние размеры
        text = new Text("Средние (до 20 см)");
        text.setFont(Font.font("Verdana", 12));
        middle.getChildren().addAll(text);
        
        //малые размеры
        text = new Text("Малые (до 10 см)");
        text.setFont(Font.font("Verdana", 12));
        small.getChildren().addAll(text);
        
        //Комбобокс для размеров листьев
        comboSize.getItems().addAll(large, middle, small);
        
        //Виджет для размеров листьев
        text = new Text("Размер листьев: ");
        text.setFont(Font.font("Verdana", FontPosture.ITALIC, 14));
        size.getChildren().addAll(text, comboSize);
        size.setPadding(new Insets(0, 0, 10, 0));
        
        //оранжевый цвет
        text = new Text("Оранжевый");
        text.setFont(Font.font("Verdana", 12));
        image = new ImageView(new Image(BranchLevel.class.getResourceAsStream("pictures/orange.png")));
        orange.getChildren().addAll(image, text);
        
        //желтый цвет
        text = new Text("Желтый");
        text.setFont(Font.font("Verdana", 12));
        image = new ImageView(new Image(BranchLevel.class.getResourceAsStream("pictures/yellow.png")));
        yellow.getChildren().addAll(image, text);
        
        //пурпурный цвет
        text = new Text("Пурпурный");
        text.setFont(Font.font("Verdana", 12));
        image = new ImageView(new Image(BranchLevel.class.getResourceAsStream("pictures/red.png")));
        red.getChildren().addAll(image, text);
        
        //зеленый цвет
        text = new Text("Зелёный");
        text.setFont(Font.font("Verdana", 12));
        image = new ImageView(new Image(BranchLevel.class.getResourceAsStream("pictures/green.png")));
        green.getChildren().addAll(image, text);
        
        //темно-зеленый цвет
        text = new Text("Темно-зелёный");
        text.setFont(Font.font("Verdana", 12));
        image = new ImageView(new Image(BranchLevel.class.getResourceAsStream("pictures/dark green.png")));
        darkGreen.getChildren().addAll(image, text);
        
        //Комбобокс для цвета листьев
        comboColor.getItems().addAll(orange, yellow, red, green, darkGreen);
        
        //Виджет для цвета листьев
        text = new Text("Цвет листьев: ");
        text.setFont(Font.font("Verdana", FontPosture.ITALIC, 14));
        color.getChildren().addAll(text, comboColor);
        color.setPadding(new Insets(0, 0, 10, 0));
        
        //Кнопка "Сбросить"
        text = new Text ("Сбросить");
        text.setFont(Font.font("Verdana", FontWeight.BOLD, 14));
        buttonReset.addEventHandler(MouseEvent.MOUSE_CLICKED, new EventHandler<MouseEvent>() {
            @Override
            public void handle(MouseEvent mouseEvent) {
                clean();
            }
        });

        reset.getChildren().add(buttonReset);
        reset.setPadding(new Insets(0, 0, 0, 10));
        mainPane.getChildren().addAll(shape, size, color, reset);
        mainPane.setPadding(new Insets(5, 0, 5, 10));
          
    }
    
    /** 
     * Получить кнопку в нужном стиле
     * @param text текст кнопки
     * @return кнопка
     */
    private Button getButton (String text) {
        Button button = new Button(text);
        button.setStyle("-fx-background-color:grey;");
        button.setTextFill(Color.WHITE);
        button.setFont(Font.font("Verdana", FontWeight.BOLD, 12));
        return button;
    }
    
    public void clean(){
        comboShape.setValue(acicular);
        comboSize.setValue(large);
        comboColor.setValue(green);
    }
    
}
